Spring Data JPA-তে Method Naming Convention ব্যবহার করে ডেটাবেস থেকে ডেটা রিট্রিভ করার জন্য কাস্টম কোয়েরি তৈরি করা যায়। এখানে ম্যানুয়াল SQL কোয়েরি লেখার প্রয়োজন হয় না; মেথডের নাম অনুযায়ী Spring Data JPA স্বয়ংক্রিয়ভাবে কোয়েরি তৈরি করে এবং এক্সিকিউট করে।
Naming Convention কিভাবে কাজ করে?
Method Naming Convention অনুসরণ করে মেথডের নামের ভিত্তিতে Spring Data JPA ডেটাবেস অপারেশনের জন্য SQL কোয়েরি জেনারেট করে। মেথডের নাম মূলত findBy, readBy, বা getBy দিয়ে শুরু হয় এবং এরপরে ফিল্ডের নাম এবং লজিকাল অপারেশন যুক্ত করা হয়।
সাধারণ গঠন
findBy<FieldName><Operation>
উদাহরণ
টেবিল: User
| ID | Name | Age | |
|---|---|---|---|
| 1 | John Doe | john@example.com | 25 |
| 2 | Jane Smith | jane@example.com | 30 |
Entity ক্লাস
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String email;
private Integer age;
// Getters and Setters
}
Repository ইন্টারফেস
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name); // নাম অনুসারে খুঁজুন
List<User> findByAgeGreaterThan(Integer age); // নির্দিষ্ট বয়সের বেশি
List<User> findByNameAndAge(String name, Integer age); // নাম এবং বয়স অনুযায়ী
}
Naming Convention এর কিছু KeyWords
| Keyword | অর্থ |
|---|---|
| And | দুটি শর্ত যুক্ত করার জন্য। |
| Or | দুটি শর্তের যেকোনো একটি সত্য হলে। |
| Is, Equals | নির্দিষ্ট মানের সমান হলে। |
| Between | দুটি মানের মধ্যে হলে। |
| LessThan | নির্দিষ্ট মানের চেয়ে কম হলে। |
| GreaterThan | নির্দিষ্ট মানের চেয়ে বেশি হলে। |
| Like | প্যাটার্ন মিললে। |
| StartingWith | নির্দিষ্ট স্ট্রিং দিয়ে শুরু হলে। |
| EndingWith | নির্দিষ্ট স্ট্রিং দিয়ে শেষ হলে। |
| Containing | নির্দিষ্ট স্ট্রিং ধারণ করলে। |
উদাহরণসমূহ
১. নির্দিষ্ট নাম অনুসারে ডেটা খুঁজুন
List<User> users = userRepository.findByName("John Doe");
SQL কোয়েরি:
SELECT * FROM user WHERE name = 'John Doe';
২. নির্দিষ্ট বয়সের চেয়ে বেশি ডেটা খুঁজুন
List<User> users = userRepository.findByAgeGreaterThan(25);
SQL কোয়েরি:
SELECT * FROM user WHERE age > 25;
৩. নাম এবং বয়স উভয়ের শর্ত মিললে ডেটা খুঁজুন
List<User> users = userRepository.findByNameAndAge("Jane Smith", 30);
SQL কোয়েরি:
SELECT * FROM user WHERE name = 'Jane Smith' AND age = 30;
৪. নির্দিষ্ট প্যাটার্ন অনুযায়ী ডেটা খুঁজুন
List<User> users = userRepository.findByEmailEndingWith("@example.com");
SQL কোয়েরি:
SELECT * FROM user WHERE email LIKE '%@example.com';
সুবিধা
- কোড রিডিবিলিটি বৃদ্ধি: Method নাম পড়েই বোঝা যায় এটি কী কাজ করবে।
- অটোমেশন: Spring Data JPA স্বয়ংক্রিয়ভাবে SQL কোয়েরি তৈরি করে।
- কম কোড: ম্যানুয়াল SQL কোয়েরি লেখার প্রয়োজন নেই।
- ডায়নামিক অপারেশন: লজিক অনুযায়ী বিভিন্ন শর্ত তৈরি করা সহজ।
Spring Data JPA-এর Method Naming Convention ডেটাবেস অপারেশন সহজ এবং কার্যকর করে, বিশেষত যেখানে কমপ্লেক্স SQL কোয়েরি লেখার প্রয়োজন নেই। এটি ডেভেলপমেন্ট সময় এবং প্রচেষ্টা বাঁচায়।
Read more